// api方法声明，所有方法都挂载于 window._api对象上
// 拦截器请在 src/utils/request.js 配置
// 关于请求的细节请查看 src/config/api.js

// 这两个方法本质上就是返回一个对象，可以根据需要自行增加修改
const get = (name, url, config) => ({ name, url, method: 'get', ...config });
const post = (name, url, config) => ({ name, url, method: 'post', ...config });

// 网络错误时toast的提示文字
const netWorkErrorMsg = '网络错误';

const apiList = [
	// 以下为示例
	// 单纯地调用接口(接口名, 接口路径[不包含base路径])
	// get('api_index_home1', 'api/index/home1'),

	// 调用该接口时，将显示loading，并在返回的result字段为false或调用接口失败时，提示对应信息
	// get('api_index_home2', 'api/index/home2', { loading: true, msg: true }),

	// 调用该接口时，将显示loading并在下方显示文字“加载中”，并在result为false时，显示“加载首页信息失败”的提示
	// post('api_index_home3', 'api/index/home3', {
	// 	loading: '加载中',
	// 	msg: '加载首页信息失败',
	// }),

	// 这会将接口返回的result字段作为数据传回，用于将result用作判断状态的情况（例如使用result字段判断收藏状态等）
	// get('api_index_home4', 'api/index/home4', { resultMode: true }),

	// 为接口设置一个默认的参数
	// get('api_index_home5', 'api/index/home5', {
	// 	resultMode: true,
	// 	apiParams: { level: 1 },
	// }),

	//获取weixim-js-sdk
	get('api_wechat_config', 'api/wechat/config', { loading: false }),

	//美丽乡村
	//获取七牛token
	get('api_global_getQiniuToken', 'api/global/getQiniuToken', { loading: false }),
	//注册
	post('api_userPortal_register', 'api/userPortal/register', { loading: true }),
	//登录
	post('api_userPortal_login', 'api/userPortal/login', { loading: true }),
	//判断手机号是否存在
	post('api_userPortal_validPhone', 'api/userPortal/validPhone', { loading: true }),
	//忘记密码
	post('api_userPortal_resetPassword', 'api/userPortal/resetPassword', { loading: true }),
	//设置新密码
	post('api_userPortal_updatePassword', 'api/userPortal/updatePassword', { loading: true }),
	//首页聚合接口
	get('api_userPortal_home', 'api/userPortal/home', { loading: false }),
	//首页导航列表
	get('api_userPortal_sysNavigation_getListByCon', 'api/userPortal/sysNavigation/getListByCon', { loading: false }),
	//获取景区列表
	get('api_userPortal_tourScenic_getListByCon', 'api/userPortal/tourScenic/getListByCon', { loading: false }),
	//获取景区详情
	get('api_userPortal_tourScenic_getById', 'api/userPortal/tourScenic/getById', { loading: true }),
	//获取景区中景点类型列表
	post('api_userPortal_tourScenicItemType_getListByCon', 'api/userPortal/tourScenicItemType/getListByCon', { loading: false }),
	//获取景区咨询列表
	get('api_userPortal_tourScenicActicle_getListByCon', 'api/userPortal/tourScenicActicle/getListByCon', { loading: false }),
	//获取景区景点列表
	get('api_userPortal_tourScenicItem_getListByCon', 'api/userPortal/tourScenicItem/getListByCon', { loading: false }),
	//获取景区路线列表
	post('api_userPortal_tourScenicLine_getListByCon', 'api/userPortal/tourScenicLine/getListByCon', { loading: false }),
	//景区咨询详情
	get('api_userPortal_tourScenicActicle_getById', 'api/userPortal/tourScenicActicle/getById', { loading: false }),
	//最新资讯列表
	get('api_userPortal_sysNews_getListByCon', 'api/userPortal/sysNews/getListByCon', { loading: false }),
	//最新资讯详情
	get('api_userPortal_sysNews_getById', 'api/userPortal/sysNews/getById', { loading: false }),
	//轮播列表
	get('api_userPortal_sysBanner_getListByCon', 'api/userPortal/sysBanner/getListByCon', { loading: false }),
	//新建问题反馈
	post('api_userPortal_sysQuestion_create', 'api/userPortal/sysQuestion/create', { loading: false }),
	//商务合作列表
	get('api_userPortal_sysCooperation_getListByCon', 'api/userPortal/sysCooperation/getListByCon', { loading: false }),
	//关于我们
	get('api_userPortal_sysAbout_getAboutByTown', 'api/userPortal/sysAbout/getAboutByTown', { loading: false }),
	//客服列表
	get('api_userPortal_sysService_getListByCon', 'api/userPortal/sysService/getListByCon', { loading: false }),
	//问题反馈列表
	get('api_userPortal_sysQuestion_getListByCon', 'api/userPortal/sysQuestion/getListByCon', { loading: false }),
	//问题反馈详情
	get('api_userPortal_sysQuestion_getById', 'api/userPortal/sysQuestion/getById', { loading: false }),
	//获取商品列表
	get('api_userPortal_tourProduct_getListByCon', 'api/userPortal/tourProduct/getListByCon', { loading: false }),
	//获取商品详情
	get('api_userPortal_tourProduct_getById', 'api/userPortal/tourProduct/getById', { loading: false }),
	//获取地址列表
	get('api_userPortal_sysAddress_getListByCon', 'api/userPortal/sysAddress/getListByCon', { loading: false }),
	//新增收货地址
	post('api_userPortal_sysAddress_create', 'api/userPortal/sysAddress/create', { loading: false }),
	//修改收货地址
	post('api_userPortal_sysAddress_edit', 'api/userPortal/sysAddress/edit', { loading: false }),
	//删除收货地址
	post('api_userPortal_sysAddress_destroy', 'api/userPortal/sysAddress/destroy', { loading: false }),
	//下单
	post('api_userPortal_order_create', 'api/userPortal/order/create', { loading: false }),
	// 获取商户详情
	get('api_userPortal_tourShop_getById', 'api/userPortal/tourShop/getById', { loading: false }),
];

export { netWorkErrorMsg, apiList };

/**
 * 发送请求
 * @author 张振东
 * @param {object} params  接口参数
 * @param {object} options 可选，接口配置，用来在使用时覆盖设置loading和msg，参见上方add函数的说明
 * @return {promise} 成功时(result == true)：resolve，返回ret字段
 *                   失败时(result == false)：reject，返回整个请求主体
 *                   超时时：reject，无返回
 *                   设置了resultMode时：resolve，返回result字段；超时时reject，无返回
 * @example
 *  _api.getIndexData({ level: 1 })
 * .finally(() =>{
 *    console.log('无论成功失败，只要返回了状态就调用')
 * })
 * .then(data =>{
 *    console.log('成功时调用')
 *    console.log(data)
 *  })
 * .catch(error =>{
 *    console.log('失败或then中抛出了错误时调用')
 *    console.log(error)
 *  })
 */

/** 关于设置msg显示的提示
 * msg == true：当接口result为false时，文字使用接口message字段内容。超时时，文字使用变量 netWorkErrorMsg 的文字
 * msg == 字符串：当接口result为false时，显示该字符串。超时时同上
 */
